#!/usr/bin/env bash
###################################################################
# Function :CentOS7.X install|uninstall|version zookeeper         #
# Platform :RedHatEL7.x Based Platform                            #
# Version  :1.0                                                   #
# Date     :2021-02-01                                            #
# Author   :houxiaoshuai                                          #
# Contact  :hxsaj@126.com                #
# Company  :                                                      #
# depend on:                                                      #
###################################################################
# 说明：此脚本自动安装zookeeper。
# 逻辑：
#  1，判断脚本参数是否有超过2个参数，并且第二个开始的参数是ip地址
#  2，如果脚本只带一个目录位置的参数，则部署单机版的zk
#  3，如果脚本带有目录位置的参数和3、5个ip地址，则部署集群版本zk
#  4，首先将zk的二进制包解压到指定的目录，集群版本的在指定的目录下按照ip的个数复制出多份来
#  5，修改配置文件之后推送到相应的目录和ip地址上即可

# 进入到脚本所在目录执行
#cd `dirname $0`

## ------ 信息色彩定义 ------
#    指示 # echo -e "\n\033[1m 色彩测试-提示 \033[0m\n"
function show_tips () { echo -e "\n\033[1m $@ \033[0m\n" >&1 ; }
#    提示 # echo -e "\n\033[1;38;46m 色彩测试-提示 \033[0m\n"
function show_notice () { echo -e "\n\033[1;34;46m $@ \033[0m\n" >&1 ; }
#    警告 # echo -e "\n\033[1;35;46m 色彩测试-警告 \033[0m\n"
function show_warning () { echo -e "\n\033[1;35;46m $@ \033[0m\n" >&2 ; }
#    报错 # echo -e "\n\033[1;31;46m 色彩测试-错误 \033[0m\n"
function show_error () { echo -e "\n\033[1;31;46m $@ \033[0m\n" >&2 ; }

# ====== 变量定义 ======
# （按需修改）二进制安装包名字
ZK_BIN_PACKAGE=/root/drds_deploy/drds_soft/zookeeper/zookeeper-3.4.12.tar.gz
# （按需修改）安装路径
ZK_DEPLOY_DIR=${1}
# （不建议改）环境变量写入的主文件
CACHE_DIR=/tmp/.zk



# ------ 检测 zk 函数  ------
function zk_stat(){
    if java -version >/dev/null 2>&1;then
        JAVA_VERSION=$(java -version 2>&1 |awk 'NR==1{ gsub(/"/,""); print $3 }')
        echo ${JAVA_VERSION}
    else
        show_error "[ ERROR ] No Java program found！"
    fi
}
# ------ 安装 zk 函数 ------
function zk_install(){
    # 解压 jdk 二进制包 到 暂存路径 下
        [ ! -d ${CACHE_DIR} ] && mkdir -p ${CACHE_DIR}
        tar -zxf ${ZK_BIN_PACKAGE} -C ${CACHE_DIR}
    #
        #sed -i "s#JAVA_HOME=deploydir#JAVA_HOME=${JAVA_HOME}#g" ${PROFILE_TEM} &&cp ${PROFILE_TEM} ${PROFILE_NAME}
        JDK_DIR=${JAVA_DEPLOY_DIR}/$(ls -t /usr/local/java|head -1)
        [ ! -f ${PROFILE_NAME} ] && touch ${PROFILE_NAME}
        echo -e "export JAVA_HOME=${JDK_DIR}"         > ${PROFILE_NAME}
        echo    'export CLASSPATH=${JAVA_HOME}/lib'  >> ${PROFILE_NAME}
        echo    'export PATH=${JAVA_HOME}/bin:$PATH' >> ${PROFILE_NAME}

    fi
}
# ------ 卸载 JAVA 函数 ------
function java_uninstall(){
    # 删除 java 二进制包部署目录
    [ -d ${JAVA_HOME} ] && rm ${JAVA_HOME} -rf
    # 删除环境变量
    rm ${PROFILE_NAME} -f
    # 卸载 yum 安装的java（注意，脚本的名字不能修改为 java 开头，脚本如果为 java 开头会导致 yum remove java* 命令执行失败
    [ $(rpm -qa |grep java|wc -l) -gt 0 ] && yum remove java* -y >/dev/null 2>&1

    # 判断是否还有java程序
    $(java -? >/dev/null 2>&1) || show_tips "Remove java done! "
}


main(){
    # 选择
    case S"${1}" in
    Sversion   ) java_version                                                  ;;
    Sinstall   ) java_install    && source /etc/profile                        ;;
    Suninstall ) java_uninstall  ;  source /etc/profile                        ;;
    S*         ) show_warning "Usage: $0 {version|install|uninstall}" &&exit 1 ;;
    esac
}

main "$@"

